<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JavaScript Bind</title>
</head>
<body>
<div>
    <h1>JavaScript bind</h1>
    <h2>语法</h2>
    <pre>
    fun.bind(this, arg1, arg2,...)

    bind()方法会创建一个新的函数，称为绑定函数,fun方法在this环境下调用

    该方法可传入两个参数，第一个参数作为this，第二个及以后的参数则作为函数的参数调用
</pre>
    <h3>说明:</h3>
    <p>JavaScript bind方法类似于Python functools.partial, 冻结部分函数位置函数或关键字参数，简化函数,更少更灵活的函数参数调用</p>

</div>
<script>
    this.a = 1;
    var b = {
        a: 2,
        getA: function () {
            return this.a;
        }
    };
    var getA1 = b.getA;
    console.log(getA1());

    var getA2 = b.getA.bind(b);
    console.log(getA2());

    function test(a,b) {
        console.log(this, a, b);
    }

    test();
    test.bind(b)();
    test.bind(b, 1)();

</script>
</body>
</html>